home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-rekhter-fibre-channel-00.txt < prev    next >
Text File  |  1993-03-03  |  31KB  |  930 lines

  1.  
  2.  
  3.  
  4. Network Working Group                                      Y. Rekhter
  5. Request for Comments: DRAFT    T.J. Watson Research Center, IBM Corp.
  6.                                                                Editor
  7.                                                              10/21/92
  8.                                                           Version 3.6
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                     IP and ARP on Fibre Channel (FC)
  16.  
  17.  
  18. Status of this Memo
  19.  
  20.  
  21.    This document specifies a standard method of encapsulating the
  22.    Internet Protocol (IP) [1] datagrams and Address Resolution Protocol
  23.    (ARP) [2] requests and replies on FC hardware and protocols [3].
  24.  
  25.    This RFC specifies an IAB standards track protocol for the Internet
  26.    community, and requests discussion and suggestions for improvements.
  27.    Please refer to the current edition of the "IAB Official Protocol
  28.    Standards" for the standardization state and status of this protocol.
  29.    Distribution of this document is unlimited.
  30.  
  31.    This document is an Internet Draft. Internet Drafts are working
  32.    documents of the Internet Engineering Task Force (IETF), its Areas,
  33.    and its Working Groups. Note that other groups may also distribute
  34.    working documents as Internet Drafts.
  35.  
  36.    Internet Drafts are draft documents valid for a maximum of six
  37.    months.  Internet Drafts may be updated, replaced, or obsoleted by
  38.    other documents at any time. It is not appropriate to use Internet
  39.    Drafts as reference material or to cite them other than as a "working
  40.    draft" or "work in progress".
  41.  
  42.  
  43. 1 Acknowledgements
  44.  
  45.  
  46.    This document would not exist without significant contributions of
  47.    Bryan Cook (IBM Corp.), Martin Sachs (IBM Corp.), and Beth Vanderbeck
  48.    (IBM Corp.).  We would also like to thank Greg Nordstrom (IBM Corp.),
  49.    Jerry Rouse (IBM Corp.), Paul Griffiths (IBM Corp.), and Lansing
  50.    Sloan (LLNL) for their review and constructive comments. Certain
  51.    parts of this document were taken from "IP and ARP on HIPPI" [5]
  52.    written by J. Renwick and A.  Nicholson.
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. Expiration Date March 1993                                      [Page 1]
  61.  
  62.                            - 2 -
  63.  
  64.  
  65.  
  66. 2 Introduction
  67.  
  68.  
  69.    Fibre Channel [3] describes the point-to-point physical interface,
  70.    transmission protocol, and signaling protocol of a high-performance
  71.    serial link for support of the higher level protocols associated with
  72.    IP, IPI, SCSI and others.
  73.  
  74.    The Fibre Channel is logically a bidirectional point-to-point serial
  75.    data channel, optimized for transfers of large blocks of data.
  76.    Physically, the Fibre Channel can be an interconnection of multiple
  77.    communication points, called N-ports, interconnected by a switched
  78.    network, called a Fabric, or a point-to-point link.
  79.  
  80.    Fibre Channel is structured as a set of hierarchical functions
  81.    grouped into several levels.  These levels are organized as follows:
  82.  
  83.  
  84.  
  85.        - FC-0 defines the physical portions of the Fibre Channel.
  86.  
  87.        - FC-1 defines the transmission protocol
  88.  
  89.        - FC-2 defines the signaling protocol which includes the frame
  90.          structure, and byte sequence
  91.  
  92.        - FC-3 defines a set of services which are common across multiple
  93.          ports of a node.
  94.  
  95.        - FC-4 defines the channel protocol, or mapping between the lower
  96.          levels of the Fibre Channel and Upper Level Protocols (ULPs).
  97.  
  98.  
  99.    Of these levels, FC-0, FC-1, and FC-2 are integrated into the FC-PH
  100.    document [3]. The reader of this document is assumed to be familiar
  101.    with the relevant parts of the FC-PH document.
  102.  
  103.    A Fibre Channel Node may support one or more N_Ports and one or more
  104.    FC-4s. Each N_Port contains FC-0, FC-1 and FC-2 functions. FC-3
  105.    optionally provides the common services to multiple N_Ports and FC-
  106.    4s.  A single N_Port may support one or more FC-4s.
  107.  
  108.    Although the FC-4 defined by this document can be used by other
  109.    protocol stacks, for convenience, we refer to it herein as the IP
  110.    FC-4. The IP FC-4 defines a mapping between two particular Upper
  111.    Level Protocols (ULPs), IP and ARP, and the lower levels of the Fibre
  112.    Channel.
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. Expiration Date March 1993                                      [Page 2]
  123.  
  124.                            - 3 -
  125.  
  126.  
  127.  
  128. 3 Scope
  129.  
  130.  
  131.  
  132.    The document focuses solely on the issues related to running IP and
  133.    ARP as ULPs over FC.
  134.  
  135.    Within the scope of this document are
  136.  
  137.  
  138.        - mechanisms to exchange IP and ARP packets
  139.  
  140.        - constraints on FC-2 Frame Header parameters
  141.  
  142.        - mechanisms to resolve IP address to physical address mapping
  143.  
  144.        - mechanisms to ensure fair access to resources (N_Ports)
  145.  
  146.  
  147.  
  148.  
  149.    All other issues are outside the scope of this document.  In
  150.    particular, the following issues are not discussed in this document.
  151.  
  152.  
  153.  
  154.        - vendor dependent solutions for ARP server
  155.  
  156.        - supporting IP multicast over FC
  157.  
  158.        - network configuration and management
  159.  
  160.        - interaction with other FC-4s (e.g. SCSI) running over the same
  161.          N_Port
  162.  
  163.        - IEEE 802 MAC Layer Bridging
  164.  
  165.        - Full support for IEEE 802.2 LLC
  166.  
  167.  
  168.  
  169.  
  170. 4 Definitions
  171.  
  172.  
  173.    Class 1 service:
  174.       A service which establishes a dedicated connection between
  175.       communicating N_Ports.
  176.  
  177.    Class 2 service:
  178.       A service that multiplexes frames at frame boundaries to or from
  179.  
  180.  
  181.  
  182.  
  183.  
  184. Expiration Date March 1993                                      [Page 3]
  185.  
  186.                            - 4 -
  187.  
  188.  
  189.  
  190.       one or more N_Ports with acknowledgement provided.
  191.  
  192.    Class 3 service:
  193.       A service that multiplexes frames at frame boundaries to or from
  194.       one or more N_Ports without acknowledgement.
  195.  
  196.    Destination Identifier:
  197.       The address identifier used to indicate the targeted destination
  198.       of the transmitted frame.
  199.  
  200.    Destination N_Port:
  201.       The N_Port to which a frame is targeted.
  202.  
  203.    Exchange:
  204.       The basic mechanism which transfers information consisting of one
  205.       or more related Information Units. An Exchange may span multiple
  206.       Class 1 Dedicated Connections. The Exchange is identified by an
  207.       Originator Exchange Identifier (OX_ID) and a Responder Exchange
  208.       Identifier (RX_ID).
  209.  
  210.    Exchange Identifier:
  211.       A generic reference to OX_ID or RX_ID (see Exchange).
  212.  
  213.    Fabric:
  214.       The entity which interconnects various N_Ports attached to it and
  215.       is capable of routing frames by using only Destination Identifier
  216.       in the FC-2 frame header.
  217.  
  218.    Information Unit:
  219.       An organized collection of one or more Information Categories
  220.       which an Upper Layer Protocol identifies to FC-PH.
  221.  
  222.    Link_Control_Facility:
  223.       A link hardware facility which attaches to an end of a link and
  224.       manages transmission and reception of data. It is contained within
  225.       each N_Port.
  226.  
  227.    Node:
  228.       A collection of one or more N_Ports controlled by a level above
  229.       FC-2.  A node may be an Internet host or a router.
  230.  
  231.    N_Port:
  232.       A hardware entity which includes a Link_Control_Facility. It may
  233.       act as an Originator, a Responder, or both.
  234.  
  235.    N_Port Identifier:
  236.       A Fabric unique address identifier by which an N_Port is uniquely
  237.       known. The identifier is used in the Source Identifier and
  238.       Destination Identifier fields of a frame.
  239.  
  240.    Originator:
  241.  
  242.  
  243.  
  244.  
  245.  
  246. Expiration Date March 1993                                      [Page 4]
  247.  
  248.                            - 5 -
  249.  
  250.  
  251.  
  252.       The logical function associated with an N_Port responsible for
  253.       originating an Exchange.
  254.  
  255.    Process_Associator:
  256.       A value used in the Association_Header to identify a process
  257.       within a node. Process_Associator is the mechanism by which a
  258.       process is addressed by another communication process.
  259.  
  260.    Responder:
  261.       The logical function associated with an N_Port responsible for
  262.       supporting the Exchange initiated by the Originator in another
  263.       N_Port.
  264.  
  265.    Source_Identifier:
  266.       The address identifier used to indicate the source of the
  267.       transmitted frame.
  268.  
  269.  
  270. 5 Design Objectives
  271.  
  272.  
  273.  
  274.    This document describes the specific feature sets of a Fibre Channel
  275.    that must be used, so that any conformant Fibre Channel Node
  276.    implementation has some assurance of being able to interoperate at
  277.    the IP level with any other conformant implementation.
  278.  
  279.  
  280. 6 FC-2 Frame Header Parameters
  281.  
  282.  
  283.  
  284.    This document places the following constraints on the value of the
  285.    FC-2 Frame Header fields when used by IP FC-4 (both by IP and by
  286.    ARP).
  287.  
  288.  
  289.        - Routing Bits of the R_CTL field must indicate Device_Data frame
  290.          (0000).
  291.  
  292.        - Information Category of the R_CTL field must indicate
  293.          Unsolicited Data (0100).
  294.  
  295.        - The TYPE field must indicate IEEE 802.2 LLC/SNAP Encapsulation
  296.          (0000 0101).
  297.  
  298.        - The DF_CTL field shall indicate the presence of the
  299.          Network_Header.
  300.  
  301.        - The Abort Sequence Condition of the F_CTL field shall indicate
  302.          in the first data frame of an Exchange  "Abort, Discard policy
  303.  
  304.  
  305.  
  306.  
  307.  
  308. Expiration Date March 1993                                      [Page 5]
  309.  
  310.                            - 6 -
  311.  
  312.  
  313.  
  314.          requested".
  315.  
  316.    Use of the IEEE 802.2 LLC/SNAP Encapsulation for IP and ARP
  317.    prescribed by this document shall not be viewed as a hindrance for
  318.    using the same encapsulation technique by other protocol stacks (e.g.
  319.    IPX, AppleTalk).
  320.  
  321.    A conformant implementation is required to send the Network_Header.
  322.    When sending an ARP packet the source and destination network
  323.    addresses in the Network_Header may be in IEEE or CCITT format. If
  324.    neither IEEE nor CCITT formats are required, as determined by the
  325.    sender, the Destination Network_Address_Authority and Source
  326.    Network_Address_Authority fields of the Network_Header shall be set
  327.    to zeros.  When sending an IP packet the source and destination
  328.    network addresses in the Network_Header may be in IEEE, CCITT, or IP
  329.    format. If neither IEEE nor CCITT formats are required, as determined
  330.    by the sender, the IP format shall be used.  The procedures for
  331.    determining whether IEEE or CCITT formats are required (either for IP
  332.    or for ARP packets) are outside the scope of this document.  A
  333.    recipient may ignore the content of the Network_Header.
  334.  
  335.    If a node sends IP packets to an N_Port, and the address resolution
  336.    procedure for that N_Port indicates that the N_Port has a non-null
  337.    Initial Process Associator (see Section 9), the node is required to
  338.    use the Association Header on the first Information Unit of an
  339.    Exchange with the value of the Responder Process Associator field of
  340.    the Association Header being set to the value of the Initial Process
  341.    Associator.  Content of the other fields in the Association Header is
  342.    outside the scope of this document.
  343.  
  344.    A conformant implementation may also send the Expiration/Security
  345.    Header. The content of this header is outside the scope of this
  346.    document.
  347.  
  348.    A conformant implementation shall not send the Device Header.
  349.  
  350.    Setting of all other parameters in the FC-2 Frame Header is outside
  351.    the scope of this document.
  352.  
  353.  
  354. 7 Initializing IP Packet Exchange
  355.  
  356.  
  357.    In order for a node attached to a Fabric to be able to send or
  358.    receive IP and/or ARP packets, the node shall establish its operating
  359.    environment with a Fabric, if present, and other destination N_Ports
  360.    with which it communicates. This is accomplished via Fabric Login and
  361.    destination N_Port Login procedures. Either implicit or explicit
  362.    Login procedure is acceptable.
  363.  
  364.    The procedures for a node to obtain its N_Port Identifier(s) (N_Port
  365.  
  366.  
  367.  
  368.  
  369.  
  370. Expiration Date March 1993                                      [Page 6]
  371.  
  372.                            - 7 -
  373.  
  374.  
  375.  
  376.    ID(s)) are outside the scope of this document.
  377.  
  378.    Setting of all Common Login Service Parameters is outside the scope
  379.    of this document.
  380.  
  381.    Setting of all N_Port Login Service Parameters for Fabric Login is
  382.    outside the scope of this document.
  383.  
  384.    Setting of all N_Port Login Service Parameters for N_Port Login is
  385.    outside the scope of this document.
  386.  
  387.  
  388. 8 Sending IP and ARP packets
  389.  
  390.  
  391.  
  392.    After a node has successfully completed the Fabric Login procedure
  393.    and the Destination N_Port Login procedure, the node shall check the
  394.    responses to the Fabric Login and the N_Port Login.  If the responses
  395.    indicate that the node can communicate with the Fabric and with the
  396.    Destination N_Port, the node may send IP and/or ARP packets to the
  397.    node associated with the Destination N_Port.
  398.  
  399.    A node sends an IP or an ARP packet by forming an Information Unit
  400.    that consists of the IEEE 802.2 LLC and SNAP headers followed by the
  401.    IP (ARP) packet itself.  There is a one-to-one mapping between an IP
  402.    (ARP) packet and an Information Unit.
  403.  
  404.    The fields in the LLC header shall contain the following values.
  405.  
  406.  
  407.        - SSAP (8 bits) shall contain 170 (decimal).
  408.  
  409.        - DSAP (8 bits) shall contain 170 (decimal).
  410.  
  411.        - CTL (8 bits) shall contain 3 (Unnumbered Information).
  412.  
  413.  
  414.    The fields in the SNAP header shall contain the following values.
  415.  
  416.  
  417.        - Organization Code (24 bits) shall be zero.
  418.  
  419.        - EtherType (16 bits) shall be set as defined in Assigned Numbers
  420.          [4] (IP = 2048, ARP = 2054, RARP = 32,821).
  421.  
  422.    The base relative offset for each Information Unit shall be zero.
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432. Expiration Date March 1993                                      [Page 7]
  433.  
  434.                            - 8 -
  435.  
  436.  
  437.  
  438. 8.1 Use of Exchanges
  439.  
  440.  
  441.    Interchange of the IP (ARP) packets (in the form of Information
  442.    Units) between a pair of N_Ports is coordinated via Exchanges.
  443.  
  444.    To improve performance this document specifies that an Exchange shall
  445.    be used in a unidirectional mode (this is because an Exchange is
  446.    inherently half-duplex).  Only the Exchange Originator is allowed to
  447.    send IP and/or ARP packets.  Thus, to support bidirectional IP
  448.    traffic between a pair of N_Ports, separate Exchanges are required in
  449.    each direction.
  450.  
  451.    Each N_Port shall originate one or more Exchanges which it uses to
  452.    send IP and/or ARP packets to the other N_Port.  Support for multiple
  453.    concurrent Exchanges is optional. A possible scheme that utilizes
  454.    multiple concurrent exchanges is described in Appendix A.
  455.  
  456.    An Exchange used for IP and/or ARP packets shall be used solely for
  457.    IP and/or ARP packets.
  458.  
  459.  
  460. 8.2 Errors and Exception Conditions at the Exchange Responder
  461.  
  462.  
  463.    If the Stop Sequence protocol is used during IP communication, the
  464.    Information Unit may be discarded by the N_Port or may be passed to
  465.    the IP FC-4 with an indication that it is damaged.  The Sequence
  466.    Recipient provides no indication to the Sequence Initiator as to why
  467.    the sequence was stopped.
  468.  
  469.  
  470.    Whenever the Sequence Recipient terminates an Information Unit with
  471.    the Abort Sequence condition, the Sequence Recipient shall return
  472.    initiative for this Exchange to the Sequence Initiator in the BA_ACC
  473.    response to Abort Sequence.
  474.  
  475.  
  476.  
  477. 8.3 Errors and Exception Conditions at the Exchange Originator
  478.  
  479.  
  480.    If the sending N_Port receives an ACK with the Stop-Sequence
  481.    indication, it performs the Stop-Sequence protocol defined in [3].
  482.    The Information Unit may be retransmitted.  The sending N_Port
  483.    retains Sequence Initiative for this Exchange.
  484.  
  485.    Whenever the sending N_Port receives the BA_ACC response to its
  486.    Abort-Sequence (due to performing the Abort-Sequence protocol) the
  487.    sending N_Port retains Sequence Initiative for this Exchange.  The
  488.    damaged Information Unit may be retransmitted.
  489.  
  490.  
  491.  
  492.  
  493.  
  494. Expiration Date March 1993                                      [Page 8]
  495.  
  496.                            - 9 -
  497.  
  498.  
  499.  
  500. 9 Address Resolution Procedures
  501.  
  502.  
  503.  
  504.    An IP address may correspond to a single N_Port or to a group of
  505.    N_Ports attached to a single node. In the latter case the group of
  506.    N_Ports associated with a given IP address is required to be attached
  507.    to the same region (see Section 12).
  508.  
  509.    The method by which a node obtains its own IP address(es) is outside
  510.    the scope of this document.
  511.  
  512.    Conceptually a hardware address used within the context of address
  513.    resolution is formed by a <N_Port Identifier, Initial Process
  514.    Associator> tuple. Address resolution procedure provides mapping
  515.    between <N_Port Identifier, Initial Process Associator> tuples and IP
  516.    addresses. Multiple <N_Port Identifier, Initial Process Associator>
  517.    tuples may be associated with a single IP address.
  518.  
  519.    Each <N_Port Identifier, Initial Process Associator> tuple forms an
  520.    indivisible unit of information. That is, when sending FC-2 Frames an
  521.    N_Port shall not use an N_Port Identifier from one tuple and an
  522.    Initial Process Associator from another tuple.
  523.  
  524.    If an IP address is associated with multiple <N_Port, Initial Process
  525.    Associator> tuples, then procedures for deciding what tuple to use
  526.    are a local matter.
  527.  
  528.    For the purpose of determining the destination <N_Port Identifier,
  529.    Initial Process Associator> tuple(s) associated with the destination
  530.    IP address, or the next hop IP address (if the destination is on a
  531.    different subnet), a node may use the techniques described in Section
  532.    9.1 and in Section 9.2.
  533.  
  534.  
  535. 9.1 Local Mapping
  536.  
  537.  
  538.    A node shall provide the capabilities to maintain local mapping
  539.    between IP addresses and <N_Port Identifiers, Initial Process
  540.    Associator> tuples of other nodes attached to the Fabric.  The source
  541.    of the information for constructing such a mapping is outside the
  542.    scope of this document.
  543.  
  544.    A conformant implementation is required to support local mapping
  545.    capabilities.
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. Expiration Date March 1993                                      [Page 9]
  557.  
  558.                            - 10 -
  559.  
  560.  
  561.  
  562. 9.2 ARP Server
  563.  
  564.  
  565.    This section describes how the mapping may be realized by using ARP
  566.    [2].
  567.  
  568.    This document assumes that each region (see Section 12) has an entity
  569.    that is capable of performing the mapping. Such an entity is referred
  570.    to as an ARP Server.
  571.  
  572.    The ARP Server maintains mapping between <N_Port Identifier, Initial
  573.    Process Associator> tuples and IP addresses.
  574.  
  575.    The ARP request shall contain all the <N_Port Identifier, Initial
  576.    Process Associator> tuples associated with the originator IP address.
  577.    Upon receipt of the ARP request, the ARP Server constructs the ARP
  578.    Reply and sends it back to the node.  The ARP Reply shall contain all
  579.    the <N_Port Identifier, Initial Process Associator> tuples associated
  580.    with the requested IP address.
  581.  
  582.    To provide the ARP Server with the information about mapping between
  583.    <N_Port Identifier, Initial Process Associator> tuples and IP
  584.    addresses of the nodes, a node shall register with the ARP Server its
  585.    IP address(es) and the <N_Port Identifier, Initial Process
  586.    Associator> tuples associated with that IP address(es) immediately
  587.    upon successful completion of the Fabric Login Procedure and Login
  588.    with the ARP Server.
  589.  
  590.    The registration of an IP address shall be accomplished by sending an
  591.    ARP Request to the ARP Server. The ARP Request shall contain the
  592.    requester's own IP address in the ar$tpa field.  The requester shall
  593.    retransmit this ARP Request until it receives an ARP Reply that
  594.    contains all the tuples carried in the ARP Request.
  595.  
  596.    If an N_Port requires the Initial Process Associator to be used for
  597.    the demultiplexing of incoming IP data, then in the ARP registration
  598.    request the Initial Process Associator part of the <N_Port
  599.    Identifier, Initial Process Associator> tuple shall be filled with
  600.    the appropriate value.  Otherwise, a null Initial Process Associator
  601.    shall be used. The information in this request is intended to be
  602.    registered by the ARP Server.
  603.  
  604.    The order in which <N_Port Identifier, Initial Process Associator>
  605.    tuples are listed in the ARP Request/Reply packets is irrelevant.
  606.  
  607.    When an N_Port is connected to another N_Port by a single dedicated
  608.    link (point-to-point topology), the respective Nodes shall be able to
  609.    perform the Address Resolution Protocol function, so that each Node
  610.    shall be able to register with the Node at the other end of the link.
  611.    An N_Port attached to a dedicated link shall ignore ARP Requests sent
  612.    by the N_Port itself.
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Expiration Date March 1993                                     [Page 10]
  619.  
  620.                            - 11 -
  621.  
  622.  
  623.  
  624.    The ARP Server shall use well-known N_Port Identifier of hex
  625.    "FFFFFC".
  626.  
  627.  
  628. 9.2.1 ARP Message Format
  629.  
  630.  
  631.    To provide alignment an N_Port ID (3 octets) is encoded as four
  632.    octets with the leading octet filled with zeros.
  633.  
  634.    ar$hrd (16 bits) shall contain %%TBD by IANA%%
  635.  
  636.    ar$pro (16 bits) shall contain the IP protocol code 2048 (decimal).
  637.  
  638.    ar$hln (8 bits) in ARP requests shall contain 12 * number of
  639.           <N_Port Identifier, Initial Process Associator> tuples
  640.           associated with the IP address of the requester. In ARP
  641.           replies it shall contain 12 * number of <N_Port Identifier,
  642.           Initial Process Associator> tuples associated with the IP
  643.           address of the ARP Request target.  Note that due to the size
  644.           of the ar$hln field the number of tuples carried in a single
  645.           ARP request/reply is limited to 21.
  646.  
  647.           For ARP requests and for ARP replies the value of this field
  648.           is equal to the length (in octets) of the ar$sha and the
  649.           ar$tha fields (both of these fields have the same length).
  650.  
  651.    ar$pln (8 bits) shall contain 4.
  652.  
  653.    ar$op (16 bits) shall contain 1 for requests, 2 for responses.
  654.  
  655.    ar$sha (variable) in ARP requests shall contain the list of all the
  656.           <N_Port Identifier, Initial Process Associator> tuples
  657.           associated with the requester.  In ARP replies it shall
  658.           contain the list of all the <N_Port Identifier, Initial
  659.           Process Associator> tuples associated with the target of the
  660.           original ARP Request (as specified in the ar$tpa field of an
  661.           ARP Request).
  662.  
  663.    ar$spa (32 bits) in ARP requests shall contain the requester's IP
  664.           address. In ARP replies it shall contain the IP address of the
  665.           ARP Request target.
  666.  
  667.  
  668.    ar$tha (variable) in ARP requests shall be filled with zeros.
  669.           In ARP replies it shall contain an <N_Port Identifier, Initial
  670.           Process Associator> tuple associated with the node which
  671.           originated the ARP Request with the rest of the field, if any,
  672.           being filled with zeros.
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680. Expiration Date March 1993                                     [Page 11]
  681.  
  682.                            - 12 -
  683.  
  684.  
  685.  
  686.    ar$tpa (32 bits) in ARP requests shall contain the IP address
  687.           of the ARP Request target.  In ARP replies it shall contain
  688.           the IP address of the Node that originated the ARP Request.
  689.  
  690.  
  691. 10 Fair Access and Resource Starvation
  692.  
  693.  
  694.  
  695.    The following rules for Exchange management are intended to ensure
  696.    frequent, fair access to a node for which multiple other nodes are
  697.    contending.
  698.  
  699.    An Exchange Originator or an Exchange Responder may terminate an
  700.    Exchange for lack of resources (Exchange Status Blocks).  The
  701.    decision to terminate an Exchange is a local matter.  The procedures
  702.    for terminating an Exchange are defined in [3].
  703.  
  704.    Appendix B contains guidelines for ensuring fair access to an N_Port,
  705.    when the N_Port uses Class 1 service.
  706.  
  707.    If an N_Port is concurrently used by several FC-4s (including IP FC-
  708.    4), then providing fair access and avoiding resource starvation can
  709.    not be addressed by IP FC-4 means only.
  710.  
  711.  
  712. 11 MTU
  713.  
  714.  
  715.    Maximum Transmission Unit (MTU) is defined as the length of the IP
  716.    packet, including IP header, but not including any overhead below IP.
  717.    Conventional LANs have MTU sizes determined by physical layer
  718.    specification.  MTUs may be required simply because the chosen medium
  719.    won't work with larger packets, or they may serve to limit the amount
  720.    of time a node must wait for an opportunity to send a packet.
  721.  
  722.    In IP FC-4 the transmission unit is the Information Unit, not the
  723.    frame.  The N_Port may transmit an Information Unit using multiple
  724.    frames.  The recipient N_Port reassembles the original Information
  725.    Unit before passing it to the upper level.  The maximum size of a
  726.    single Information Unit is limited to 2^32 - 1, which imposes no
  727.    practical limit for networking purposes.  Even so, an N_Port needs an
  728.    MTU so that maximum buffer sizes for Information Units can be
  729.    determined.
  730.  
  731.    The MTU for IP on Fibre Channel is 65280 (decimal) octets.
  732.  
  733.    This value was selected because it allows the IP packet to fit in one
  734.    64K octet buffer with up to 256 octets of overhead. It is also
  735.    consistent with the MTU defined for HIPPI [5].
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742. Expiration Date March 1993                                     [Page 12]
  743.  
  744.                            - 13 -
  745.  
  746.  
  747.  
  748.    The maximum overhead is 8 octets at the present time; there are 248
  749.    octets of room for expansion.
  750.  
  751.       IEEE 802.2 LLC/SNAP Headers              8 octets
  752.  
  753.       Maximum IP packet size (MTU)         65280 octets
  754.  
  755.                                            ------------
  756.  
  757.                            Total           65288 octets (64K - 248)
  758.  
  759.  
  760.  
  761. 12 Forming an IP subnet
  762.  
  763.  
  764.    This document defines a region as a set of N_Ports attached to a
  765.    common Fabric (if Fabric is present), such that any N_Port in the set
  766.    can successfully complete the N_Port Login Procedure with all the
  767.    other N_Ports in the set. If a Fabric is absent then a region is
  768.    defined as a pair of N_Ports that have successfully completed the
  769.    N_Port Login Procedure with each other.
  770.  
  771.    All the N_Ports that form a single region constitute a single IP
  772.    subnet.  That is, all the nodes associated with the N_Ports forming a
  773.    single region should be able to exchange IP packets with each other
  774.    directly without any intervening routers.
  775.  
  776.    For a set of N_Ports attached to a common Fabric not all of the
  777.    N_Ports within the set may be able to communicate with each other.
  778.    This may be due, for example, to different Classes of service
  779.    supported by different ports within the set, thus resulting in
  780.    potentially incompatible sets of the Login parameters. Therefore, a
  781.    set of N_Ports attached to a common Fabric may consist of multiple
  782.    regions.
  783.  
  784.    If an N_Port and the Fabric to which the N_Port is attached support
  785.    multiple Classes of service, then the set of N_Ports with which the
  786.    N_Port can communicate may not have the transitivity property with
  787.    respect to connectivity. For example, the set may have three
  788.    different N_Ports, P1, P2, and P3, such that P2 can communicate with
  789.    P1, P3 can communicate with P1, but P2 and P3 can't communicate with
  790.    each other. Thus, an N_Port may belong to more than one region.
  791.  
  792.    If an N_Port belongs to more than one region, then for each region in
  793.    which the N_Port is intended to support IP the N_Port shall be
  794.    assigned a distinct IP address. A Node that is connected by N_Port(s)
  795.    to, and supports IP addresses on, multiple regions may act either as
  796.    a multihomed host or as a router.  By default such a node shall act
  797.    as a multihomed host.
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804. Expiration Date March 1993                                     [Page 13]
  805.  
  806.                            - 14 -
  807.  
  808.  
  809.  
  810.    Procedures for determining the set of N_Ports attached to a common
  811.    Fabric that forms a region are outside the scope of this document.
  812.  
  813.  
  814. Appendix A Using multiple concurrent exchanges for TCP demultiplexing
  815.  
  816.  
  817.    This appendix suggests one possible application of multiple
  818.    concurrent exchanges between a pair of N_Ports. The suggested scheme
  819.    is intended to provide an alternative mechanism to demultiplex
  820.    incoming IP packets destined to different TCP ports within a node.
  821.  
  822.    A pair of N_Ports residing on a common IP subnetwork may agree to
  823.    maintain a separate pair of Exchanges for each TCP connection between
  824.    the nodes connected via these two N_Ports.  In such an environment an
  825.    Exchange Responder may use X_ID information as an alternative
  826.    mechanism to correlate incoming IP packets with one of its TCP
  827.    connection control blocks.
  828.  
  829.    The procedure for establishing such an agreement is outside the scope
  830.    of this document.
  831.  
  832.    An implementation that uses X_ID information for demultiplexing of
  833.    incoming IP packets shall be able to correctly operate in the
  834.    presence of the gratuitous termination of Exchanges (such termination
  835.    may happen, for instance, due to the lack of resources).
  836.  
  837.  
  838. Appendix B Fair access with Class 1 service
  839.  
  840.  
  841.    The following approach for Class 1 connection management is suggested
  842.    to ensure frequent, fair access to a node for which multiple other
  843.    nodes are contending.
  844.  
  845.    An Exchange Originator should use the Continue Sequence Condition
  846.    bits to indicate to the Exchange Responder whether the Originator has
  847.    more IP/ARP packets to send.  The Responder may use this information
  848.    when making a decision about terminating a Class 1 connection.
  849.  
  850.    An Exchange Originator should attempt to terminate a Class 1
  851.    connection used solely by the IP FC-4 any time it does not have any
  852.    additional IP or ARP packets to send or is unable to send more
  853.    packets, e.g., due to flow or congestion control or excessive
  854.    occurrences of the Stop_Sequence protocol.  Even in the presence of
  855.    additional IP or ARP packets to send an Exchange Originator may
  856.    terminate such a Class 1 connection after some upper bounded time
  857.    interval. The suggested value of this interval is 500 milliseconds.
  858.  
  859.    The purpose of this is to give each Exchange Originator a fair share
  860.    of a common Exchange Responder's bandwidth.  Without a limit, if
  861.  
  862.  
  863.  
  864.  
  865.  
  866. Expiration Date March 1993                                     [Page 14]
  867.  
  868.                            - 15 -
  869.  
  870.  
  871.  
  872.    there is a Responder that is constantly in demand by multiple
  873.    Originators, the Originator that sends the most data per connection
  874.    may effectively monopolize the Responder.
  875.  
  876.  
  877. Appendix C Guidelines for using different Classes of service
  878.  
  879.  
  880.    If the Fabric, the Exchange Originator, and the Exchange Responder
  881.    all support Class 1, Class 2 and/or Class 3 service, then the
  882.    Originator is allowed to send data over any Class supported by all.
  883.    To improve performance it is suggested to use Class 1 for sending
  884.    long Information Units, and use Class 2 or 3 for sending the rest,
  885.    unless there is already an established Class 1 connection that can be
  886.    used.
  887.  
  888.    Use of Class 3 service for sending IP packets may have certain
  889.    undesirable performance implications.
  890.  
  891.  
  892. References
  893.  
  894.  
  895.    [1] Postel, J., "Internet Protocol", RFC-791, USC/Information
  896.    Sciences Institute, September 1981.
  897.  
  898.    [2] Plummer, D., "An Ethernet Address Resolution Protocol - or -
  899.    Converting Network Protocol Addresses to 48.bit Ethernet Address for
  900.    Transmission on Ethernet Hardware", RFC826, MIT, November 1982
  901.  
  902.    [3] "Fibre Channel - Physical and Signaling Interface (FC-PH)", Rev
  903.    3.0, ANSI, June 1992
  904.  
  905.    [4] Reynolds, J.K., Postel, J., "Assigned Numbers", RFC1060,
  906.    USC/Information Sciences Institute, March 1990
  907.  
  908.    [5] Renwick, J., Nicholson, A., "IP and ARP on HIPPI", Internet
  909.    Draft, June 1992
  910.  
  911.  
  912.  
  913. Editor's Address
  914.  
  915.    Yakov Rekhter
  916.    T.J. Watson Research Center, IBM Corporation
  917.    P.O. Box 218
  918.    Yorktown Heights, NY 10598
  919.    Phone:  (914) 945-3896
  920.    email:  yakov@watson.ibm.com
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. Expiration Date March 1993                                     [Page 15]
  929.  
  930.